package com.bx.implatform.portal.service;

import com.bx.implatform.portal.entity.DelTodoEntity;
import com.bx.implatform.portal.entity.MessageEntity;
import com.bx.implatform.portal.entity.TodoEntity;
import com.bx.implatform.portal.entity.UpTodoEntity;
import com.bx.implatform.vo.LoginVO;
import com.fasterxml.jackson.databind.JsonNode;
import jakarta.validation.constraints.NotNull;
import org.springframework.stereotype.Service;

@Service
public interface PortalApiService {


    /**
     * 所在部门下的部门列表
     *
     * @return
     */
    JsonNode deptList(@NotNull String deptId);

    /**
     * 获取部门详情
     *
     * @return
     */
    JsonNode deptDetail(@NotNull String deptId);

    /**
     * 获取用户列表
     *
     * @return
     */
    JsonNode userList(@NotNull String deptId, Long pageNum, Long pageSize);

    /**
     * 获取用户详情
     *
     * @return
     */
    JsonNode userDetail(@NotNull String userId);

    /**
     * 创建待办/待阅
     *
     * @return
     */
    JsonNode createTodo(TodoEntity todo);

    /**
     * 更新待办/待阅
     *
     * @return
     */
    JsonNode updateTodo(UpTodoEntity todo);

    /**
     * 删除待办/待阅
     *
     * @return
     */
    JsonNode deleteTodo(DelTodoEntity todo);

    /**
     * 获取accessToken
     *
     * @return
     */
    LoginVO getAccessToken(String userId, Integer terminal);

    /**
     * 发送工作通知
     *
     * @return
     */
    JsonNode sendMsg(MessageEntity msg);
}
